相較於CPU與記憶體,磁碟系統的速度慢得多了,所以也常常是系統效能瓶頸的所在。
相較於CPU與記憶體,磁碟系統的速度慢得多了,所以也常常是系統效能瓶頸的所在。應用程式依其工作的性質可大致區分為: 大多為CPU運算動作的CPU-bound類型與大多為disk I/O動作的I/O-bound。所以在分析效能問題時要先知道應用系統是CPU-bound或是I/O-bound的工作,再進一步對症下藥。
磁碟系統本身有其機械物理特性的限制,碟片旋轉的越快、磁頭數量越多、碟片越多、一次能讀取的資料就越多,效能就比較好。單一顆磁碟能裝的碟片、轉速有限,但將多顆磁碟組合成RAID 0可以將資料同時寫入多個磁碟,也是一種直接提升磁碟系統效能的方式。
磁碟系統緩慢的症狀最顯著的就是disk utilization很高,這個數據可以在iostat命令下看到(%util)。而當磁碟系統效能不好的時候,記憶體裡會累積許多尚未完成的I/O動作,CPU也會花時間等待I/O完成,這些都進一步的造成記憶體吃緊與CPU效能不彰。
在vmstat命令中,bi與bo兩個數值顯示有多少block寫入與讀取磁碟系統,持續的追蹤這兩個數值可以看到磁碟系統的忙碌情況。另外在iostat命令中,await顯示了I/O的平均等待時間,svctm是I/O動作平均運作時間,從這裡也能去判斷是因為I/O動作太大以致於執行很久,還是磁碟系統速度太慢,以致於等待太久。
[本系列文章]
Linux系統效能分析與探討 - [1] CPU的效能關鍵字
Linux系統效能分析與探討 - [2] 記憶體的效能關鍵字
Linux系統效能分析與探討 - [3] Linux作業系統網路模組的效能關鍵字
Linux系統效能分析與探討 - [4] Linux block device的效能關鍵字
Linux系統效能分析與探討 - [5] 了解process的運作的指令 1 - ps
Linux系統效能分析與探討 - [6] 了解process的運作的指令2 - top
Linux系統效能分析與探討 - [7] 了解process的運作的指令3 - pstree
Linux系統效能分析與探討 - [8] 了解process使用記憶體的狀況 - pmap
Linux系統效能分析與探討 - [9] 顯示系統的附載狀況 - uptime, w
Linux系統效能分析與探討 - [10] 顯示系統的狀態 - vmstat
Linux系統效能分析與探討 - [11] 檢視記憶體的使用狀況 - free
Linux系統效能分析與探討 - [12] 取得詳細記憶體資訊 - cat /proc/meminfo
Linux系統效能分析與探討 - [13] Kernel slab cache的資訊 - slabtop
Linux系統效能分析與探討 - [14] Kernel buddy system 的內容 - /proc/buddyinfo
Linux系統效能分析與探討 - [15] slabinfo
Linux系統效能分析與探討 - [16] 系統使用狀態: mpstat, sar
Linux系統效能分析與探討 - [17] CPU與disk的狀態 - iostat
Linux系統效能分析與探討 - [18] 更豐富的iostat內容
Linux系統效能分析與探討 - [19] 多核心的記憶體管理狀態 - numactl與numastat
Linux系統效能分析與探討 - [20] 豪華的系統監看工具 - nmon
Linux系統效能分析與探討 - [21] 追蹤程式所呼叫的系統函式 - strace
Linux系統效能分析與探討 - [22] 網路診斷工具 ping, traceroute 與 netstat
Linux系統效能分析與探討 - [23] 網路及時監看工具 iptraf
Linux系統效能分析與探討 - [24] 獲取網路統計資料 sar -n DEV
Linux系統效能分析與探討 - [25] 取得系統記憶體資訊 sar -r
Linux系統效能分析與探討 - [26] 系統記憶體監視工具 - pidstat
Linux系統效能分析與探討 - [27] 找尋系統效能的瓶頸 - CPU
Linux系統效能分析與探討 - [28] 找尋系統效能的瓶頸 - Memory